package datasource
import (
"github.com/K-Phoen/sdk"
)
type Option func (constant *Datasource )
const (
dashboardLoad int64 = 1
)
type Datasource struct {
Builder sdk .TemplateVar
}
func New (name string , options ...Option ) *Datasource {
refreshValue := dashboardLoad
query := &Datasource {Builder : sdk .TemplateVar {
Name : name ,
Label : name ,
Type : "datasource" ,
Options : []sdk .Option {},
Refresh : sdk .BoolInt {
Flag : true ,
Value : &refreshValue ,
},
}}
for _ , opt := range options {
opt (query )
}
return query
}
func Type (datasourceType string ) Option {
return func (query *Datasource ) {
query .Builder .Query = datasourceType
}
}
func Regex (regex string ) Option {
return func (query *Datasource ) {
query .Builder .Regex = regex
}
}
func Label (label string ) Option {
return func (query *Datasource ) {
query .Builder .Label = label
}
}
func HideLabel () Option {
return func (query *Datasource ) {
query .Builder .Hide = 1
}
}
func Hide () Option {
return func (query *Datasource ) {
query .Builder .Hide = 2
}
}
func Multiple () Option {
return func (query *Datasource ) {
query .Builder .Multi = true
}
}
func IncludeAll () Option {
return func (query *Datasource ) {
query .Builder .IncludeAll = true
query .Builder .Options = append (query .Builder .Options , sdk .Option {
Text : "All" ,
Value : "$__all" ,
})
}
}
The pages are generated with Golds v0.8.2 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .